﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Migrator.Entities;
using System.Diagnostics;

namespace Migrator.Core
{
    public class Simulator
    {
        public static readonly Simulator Instance = new Simulator();

        private Simulator()
        {
            this.internet = new Internet();
        }

        #region Public methods
        public void Step()
        {
            Debug.WriteLine("Step " + this.clock);
            this.Internet.Update();
            this.clock++;
        }
        
        #endregion

        #region Properties

        /// <summary>
        /// Simulation's clock
        /// </summary>
        public int Clock
        {
            get { return this.clock; }
        }

        public Internet Internet
        {
            get { return this.internet; }
        }
        
        #endregion

        /// <summary>
        /// Simulation's clock
        /// </summary>
        private int clock = 0;

        private Internet internet;
    }
}
